Digital watermarking is a process for modifying physical or electronic media to embed a machine-readable code into the media. The media may be modified such that the embedded code is imperceptible or nearly imperceptible to the user, yet may be detected through an automated detection process. Most commonly, digital watermarking is applied to media signals such as images, audio signals, and video signals. However, it may also be applied to other types of media objects, including documents (e.g., through line, word or character shifting, or line/character thickness variations), software, multi-dimensional graphics models, and surface textures of objects.
Digital watermarking systems typically have two primary components: an encoder that embeds the watermark in a host media signal, and a decoder that detects and reads the embedded watermark from a signal suspected of containing a watermark (a suspect signal). The encoder embeds a watermark by subtly altering the host media signal. The reading component analyzes a suspect signal to detect whether a watermark is present. In applications where the watermark encodes information, the reader extracts this information from the detected watermark.
Several particular watermarking techniques have been developed. The reader is presumed to be familiar with the literature in this field. Particular techniques for embedding and detecting imperceptible watermarks in media signals are detailed in the assignee's co-pending application Ser. Nos. 10/319,404, 09/503,881 and U.S. Pat. No. 6,122,403, which are hereby incorporated by reference.
A particular class of digital watermarking, called reversible watermarking, enables the original host signal to be reconstructed. One example is disclosed in assignee's application Ser. No. 10/319,404, which describes a variety of methods for reversible watermarking of data, including a technique specifically referred to as difference expansion. Reversible watermarking has a number of applications, as illustrated in the patent documents incorporated above. In one application, a reversible watermark is used to verify that content in which it is embedded has not been altered. In particular, if the reversible watermark can be recovered and/or the content verified (e.g., via comparison of a hash of the perfectly restored content and a hash of original content carried in watermark), then the content is deemed authentic. Many proposed techniques focus on high data carrying capacity while maintaining fidelity of the content. Others propose making the watermark robust, and conditionally reversible in the event that the content has not been altered. For some applications, the reversible watermark can be used to degrade fidelity intentionally, and then restore high quality content through reversal of the watermark, assuming the content user has paid for, licensed, or otherwise been granted permission to access the high quality version.
The needs of a particular application vary, including the extent to which content quality is preserved, auxiliary data carrying capacity is maximized, and robustness is maintained.
The invention provides a software program, and related methods and systems that transform a host data file into a logical storage unit for auxiliary data files by embedding the auxiliary files in the data stored in the host data file. In one particular implementation, the program embeds auxiliary files in a reversible watermark. This reversible watermark modifies host data such as an image, audio, video, or software code, to carry auxiliary data. For perceptual content, the reversible watermark can maintain a desired level of perceptual quality, effectively hiding the auxiliary data in the host data. The reversible watermark enables the original host data prior to modifications due to the embedding to be restored.
One aspect of the invention is software for transforming a host data file carrying host media data into a logical storage unit for storing auxiliary data files in a reversible watermark embedded into the host media data. The software, stored on a storage medium, includes a watermarking module for modifying original values of host media data elements in the host data file to embed a reversible watermark carrying auxiliary data files. The reversible watermark enables the host media data elements to be restored to the original values. It also includes a user interface module for representing the host data files as a container for the auxiliary data files, and enables the adding or removing of auxiliary data files from the reversible watermark.
A variety of modules may be included in the software for providing additional functionality, including modules for determining capacity of the host data, partitioning the host data into randomly accessible storage units, displaying overlay files, executing links, such hyperlinks to related information, controlling access to the host data or embedded data layers, controlling distribution of the host, tracking the history of the host data, facilitating visual searching, controlling rendering of the host, etc.
Further features will become apparent from the following detailed description and accompanying drawings.